$(function () {
	//查询权限
    selectCompetence();
	//查询部门
    selectPosition();
	//动态数据表格
	layui.use(['table','upload'],function(){
		var table = layui.table;
		var upload = layui.upload;
		table.render({
		  elem: '#tableData',
		  id:"TableData",
		  url: 'http://localhost:8081/personnel/findAll',
		  even: true,//开启隔行背景
		  cols: [[ //表头
			{type: 'checkbox', align: 'center', value: 'personnelId'},
			{type: 'numbers', title: '序号', align: 'center'}, // 自增序号
			{field: 'studentId', title: '学号', edit: 'text',width: "9%"},
			{field: 'personnelName', title: '姓名',edit: 'text', align: 'center',width: "8%"},
			{field: 'competenceName', title: '权限名称', align: 'center',width: "8%"},
			{field: 'personnelPhone', title: '手机号',edit: 'text', align: 'center',width: "9%"},
			{field: 'personnelPassword', title: '密码',edit: 'text', align: 'center',width: "9%"},
			{field: 'personnelGrade', title: '年级',edit: 'text', align: 'center'},
			{field: 'personnelAcademy', title: '学院',edit: 'text', align: 'center',width: "8%"},
			{field: 'personnelClasses', title: '班级',edit: 'text', align: 'center',width: "11%"},
			{field: 'positionName', title: '所属部门', align: 'center',width: "8%"},
			{title: '活动',toolbar: '#activityNames', event: 'activity',width: "8%"},
			{title: '操作',toolbar: '#tools', event: 'tool',width: "22%", fixed: 'right'}
		  ]],
		  page: {//分页
			  layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
			  , groups: 5 //只显示 1 个连续页码
		  },
		  toolbar: true,//开启自定义工具行
		  defaultToolbar: ['filter', 'print', 'exports']
		});
		
		//批量上传
		var uploadInst = upload.render({
			elem: '#uploadPersonnel',//绑定元素
			url: 'http://localhost:8081/personnel/uploadPersonnel',//上传接口
			accept:'file',
			exts:'xls|xlsx',
			auto:true,
			success:function(data){
				if(data.code == 200){
					layer.msg('上传成功', {icon: 6, time: 1000});
				}else{
					layer.msg("上传失败", {icon: 5, time: 1000});
				}
				setTimeout('parent.location.reload();',1000);
			},
			error: function(){
				layer.msg("上传失败", {icon: 5, time: 1000});
				setTimeout('parent.location.reload();',1000);
			}
		});
		
		//添加
		$("#addPersonnel").click(function(){
			layer.open({
			  type: 2,
			  maxmin:true,
			  area:['600px', '550px'],
			  title:"添加人员信息",
			  content: '/AMS/index/personnel/addPersonnel.html' //这里content是一个URL，如果你不想让iframe出现滚动条，你还可以content: ['http://sentsin.com', 'no']
			}); 
		})
		
		//表格监听
		table.on('tool(test)', function(obj){ //注：tool 是工具条事件名，test 是 table 原始容器的属性 lay-filter="对应的值"
			var data = obj.data; //获得当前行数据
			var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
			if(layEvent === 'del'){
				//删除
				layer.confirm('确定要删除吗', function(index){
					obj.del(); //删除对应行（tr）的DOM结构，并更新缓存
					$.ajax({
					  url: "http://localhost:8081/personnel/deletePersonnel",//请求地址
					  type: "POST",//可以用post或者get
					  data:{
						"personnelId":data.personnelId
					  },//请求数据
					  success:function(data){
						  if(data.code==200){
							//弹框展示信息
							layer.msg("删除成功",{icon:6,time:1000});
						  }else{
							layer.msg("删除失败", {icon: 5, time: 1000});
						  }
					  },
					  error:function(data){
						  //弹框展示信息
						   layer.msg("'"+data.message+"'",{icon:6,time:1000});
						}
					});
					//关闭弹窗
					layer.close(index);
				});
			}else if(layEvent === 'activity'){ //活动详情
				$.ajax({
					url: "http://localhost:8081/personnel/findActivityNames/"+data.personnelId,//请求地址
					type: "GET",//可以用post或者get
					success:function(data){
						if(data.data != "") {
							var activityNames = '';
							for (var i = 0; i < data.data.length; i++) {
								activityNames = activityNames+data.data[i]+"<br>"
							}
							layer.open({
								type: 1,
								title: "活动名称",//不显示标题栏
								closeBtn: false,
								anim: 3,
								area: '300px;',
								shade: 0.8,
								id: 'activity', //设定一个id，防止重复弹出
								btn: ['确认'],
								btnAlign: 'c',
								moveType: 1, //拖拽模式，0或者1
								content:""+activityNames+""
							});
						}else{
							layer.msg("您没有参加过活动，请继续努力", {icon: 5, time: 1000});
						}
					},
					error:function(data){
					  layer.msg("'"+data.message+"'", {icon: 5, time: 1000});
					}
				});
			}else if(layEvent === 'competence'){//分配权限
				var data = obj.data;
				findById(data,layer,1);
			}else if(layEvent === 'position'){//分配部门
				var data = obj.data;
				findById(data,layer,2);
			}
	  });
	  
	  //监听行单击事件 单元格编辑修改数据
	  table.on('edit(test)', function(obj){
		var data = obj.data;
		//获取权限id
		var competenceId = findCompetenceByName(data.competenceName);
		$.ajax({
			  url: "http://localhost:8081/personnel/updatePersonnel",//请求地址
			  type: "GET",//可以用post或者get
			  contentType:"application/json",
			  accept:"application/json",
			  dataType:"json",
			  data: {
				"personnelId": data.personnelId,
				"studentId": data.studentId,
				"personnelName": data.personnelName,
				"competenceId": competenceId,
				"personnelPhone": data.personnelPhone,
				"personnelPassword": data.personnelPassword,
				"personnelAcademy": data.personnelAcademy,
				"personnelClasses": data.personnelClasses,
				"personnelGrade": data.personnelGrade,
				"positionId": 0
			  },//请求数据
			  success:function(data){
				  if(data.code==200){
					  location.reload()
					  layer.msg("修改成功", {icon: 6, time: 1000});
				  }else{
					  location.reload()
					  layer.msg(""+data.message+"", {icon: 5, time: 1000});
				  }
			  },
			  error:function(data){
				  layer.msg("请求失败", {icon: 5, time: 1000});
			  }
			});
		});
	  
	});
});

//刷新
$("#reload").click(function(){
	location.reload()
})
//根据条件查询
$("#findPersonnel").click(function(){
	reload()
})

//下载模板
$("#downloadTemplate").click(function(){
	downloadTemplate();
})

//执行重载
function reload() {
	//获取相应值
	var competenceName = $("#competenceName").val()//权限名称
	var positionName = $("#positionName").val()	//部门id
	var personnelName = $("#personnelName").val() //人员姓名
	var personnelGrade = $("#personnelGrade").val() //年级
	//判断是否为空
	if(competenceName==""){
		competenceName="";
	}
	if(positionName==""){
		positionName="";
	}
	if(personnelName==""){
		personnelName="";
	}
	if(personnelGrade==""){
		personnelGrade=0;
	}
	//获取layui的table对象
    var table = layui.table;
    //执行重载
    table.reload('TableData', {
        url: 'http://localhost:8081/personnel/findPersonnel',//数据接口
        method: "POST",
        where: { //设定异步数据接口的额外参数，任意设
            "personnelName": personnelName,
            "competenceName": competenceName,
            "positionName": positionName,
            "personnelGrade": personnelGrade,
        }
        , page: {//开启分页，并应用HASH定位
            layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
            , groups: 2 //只显示 1 个连续页码
        }
    });
}

//根据权限名称查询权限信息
function findCompetenceByName(competenceName){
	var competenceId = 0;
	$.ajax({
	  url: "http://localhost:8081/competence/findByName",//请求地址
	  type: "POST",//可以用post或者get
	  async: false,
	  data:{
		"competenceName":competenceName
	  },//请求数据
	  success:function(data){
		  if(data.code==0){
			competenceId = data.data.competenceId;
		  }
	  },
	  error:function(data){
		 competenceId = 0;
	  }
	});
	return competenceId;
}

//查询权限
function selectCompetence() {
	layui.use('form', function () {
		var form = layui.form;
		form.render();
		$.ajax({
			//请求方式
			type: "GET",
			//请求地址
			url: "http://localhost:8081/competence/findAll",
			dataType: "json",
			success: function (date) {
				if(date.code==0){
					var list = date.data;    //返回的数据
					var government = $("#competenceName");//server为select定义的id
					for (var i = 0; i < list.length; i++) {
						var option = document.createElement("option");  // 创建添加option属性
						option.setAttribute("value", list[i].competenceName); // 给option的value添加值
						option.innerText = list[i].competenceName;   // 打印option对应的纯文本
						government.append(option);           //给select添加option子标签
					}
					form.render("select");            // 刷新select，显示出数据
				}else{
					 layer.msg("请求失败", {icon: 5, time: 1000});
				}
			}
		});

	});
}
//查询部门
function selectPosition() {
	layui.use('form', function () {
		var form = layui.form;
		form.render();
		$.ajax({
			//请求方式
			type: "GET",
			//请求地址
			url: "http://localhost:8081/position/findAll",
			dataType: "json",
			success: function (date) {
				if(date.code==0){
					var list = date.data;    //返回的数据
					var government = $("#positionName");//server为select定义的id
					for (var i = 0; i < list.length; i++) {
						var option = document.createElement("option");  // 创建添加option属性
						option.setAttribute("value", list[i].positionName); // 给option的value添加值
						option.innerText = list[i].positionName;   // 打印option对应的纯文本
						government.append(option);           //给select添加option子标签
						form.render("select");            // 刷新select，显示出数据
					}
				}else{
					 layer.msg("请求失败", {icon: 5, time: 1000});
				}
			}
		});

	});
}

//根据人员id查询人员信息
function findById(data,layer,type){
	$.ajax({
		url: "http://localhost:8081/personnel/findByPersonnelId/"+data.personnelId,//请求地址
		type:"GET",//可以用post或者get
		success:function(data){
		  if(data.code==0){
			//=========使用 sessionStorage 创建一个本地存储的 name/value 对============
			sessionStorage.setItem("personnel",JSON.stringify(data.data));
			sessionStorage.setItem("type",JSON.stringify(type));
			//打开弹窗
			layer.open({
			  type: 2, 
			  content: '/AMS/index/personnel/updatePersonnel.html' //这里content是一个URL，如果你不想让iframe出现滚动条，你还可以content: ['http://sentsin.com', 'no']
			}); 
		  }else{
			layer.msg("'"+data.message+"'", {icon: 5, time: 1000});
		  }
		},
		error:function(data){
		  //弹框展示信息
		   layer.msg("查询失败，请联系程序猿", {icon: 5, time: 1000});
		}
	})
}
//下载模板
function downloadTemplate(){
	window.location.href="http://localhost:8081/personnel/downloadTemplate";
}